﻿using System;

namespace Mx.Ipn.Escom.TT20080015.Modelo.Datos
{
    public class Persona
    {
        #region Atributos
        private int id;
        private string nombre;
        private string aPaterno;
        private string aMaterno;
        #endregion

        /// <summary>
        /// Constructor por defecto.
        /// </summary>
        protected Persona()
        {
            this.id = 0;
        }

        /// <summary>
        /// Constructor de la clase Persona.
        /// </summary>
        /// <param name="id">Identificador que se asigna para cada persona</param>
        /// <param name="nombre">Nombre de la persona </param>
        /// <param name="aPaterno">Apellido paterno de la persona</param>
        /// <param name="aMaterno">Apellido materno de la persona</param>
        protected Persona(int id, string nombre, string aPaterno, string aMaterno)
        {
            this.id = id;
            this.nombre = nombre;
            this.aPaterno = aPaterno;
            this.aMaterno = aMaterno;
        }

        #region Propiedades
        /// <summary>
        /// Almacena el identificador de una persona.
        /// </summary>
        /// <value>Identificador de una persona.</value>
        public int Id
        {
            get { return id; }
            set { this.id = value; }
        }

        /// <summary>
        /// Almacena el nombre de una persona.
        /// </summary>
        /// <value>Nombre de una persona.</value>
        public string Nombre
        {
            get { return nombre; }
            set { this.nombre = value; }
        }

        /// <summary>
        /// Almacena el apellido paterno de una persona.
        /// </summary>
        /// <value>Apellido paterno de una persona.</value>
        public string APaterno
        {
            get { return aPaterno; }
            set { this.aPaterno = value; }
        }

        /// <summary>
        /// Almacena el apellido materno de una persona.
        /// </summary>
        /// <value>Apellido materno de una persona.</value>
        public string AMaterno
        {
            get { return aMaterno; }
            set { this.aMaterno = value; }
        }
        #endregion

        /// <summary>
        /// Sobreescribe el método toString de la clase Object.
        /// </summary>
        /// <returns>Cadena formada por el identificador, nombre, apellido paterno y materno de una persona.</returns>
        public override string ToString()
        {
            return id + ",'" + nombre + "','" + aPaterno+ "','" + aMaterno + "'";
        }
    }
}
